草庐IT

c++ - scanf int8_t 损坏堆栈

全部标签

ruby-on-rails - 如何使用 ruby​​ 调试器获取堆栈跟踪?

我正在尝试在Rails应用程序中使用ruby​​调试器。为了显示堆栈跟踪,我需要在(rdb:1)提示符下键入什么命令?我试过backtrace,但它只列出了最顶层的框架。 最佳答案 http://apidock.com/ruby/Kernel/callercaller(0)#Returnsthestacktrace,omitting0initialentry. 关于ruby-on-rails-如何使用ruby​​调试器获取堆栈跟踪?,我们在StackOverflow上找到一个类似的问题:

c - Ruby 解释器的嵌入 API 的文档在哪里?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我正在寻找有关将Ruby解释器嵌入到C或C++程序以及用于该目的的API的全面的在线文档资源。Pickaxe书中关于此的部分非常好,但我的版本指的是Ruby1.8,我对当前的ruby​​版本范围很感兴趣,即1.8.x、1.9.x和2.0,并且有很多跨该版本范围的嵌入处理之间的差异。作为引用,有问题的Ruby解释器是来自http://www.ruby-lang.org/

ruby-on-rails - 为什么 Ruby 2.5.0 不在 Rails 5.1.4 中显示堆栈跟踪?

以下是我在仅更改Ruby版本时遇到的错误的Rails服务器日志的两个示例。Ruby2.4.2、Rails5.1.4、Puma3.11.0:NoMethodError-undefinedmethod`recent'for#:path/to/show.html.haml:50:in`blockin_path_to_show_html_haml___4224769623360811234_28796540'path/to/show.html.haml:30:in`_path_to_show_html_haml___4224769623360811234_28796540'Ruby2.5.0、

ruby - 在 Rails 控制台中启用异常堆栈转储

我正在使用带有prygem的RubyonRails。当rake任务期间发生错误时,我得到一个非常好的堆栈跟踪。然而,当我在我的Rails控制台中执行某些触发异常的操作时,我只能看到错误消息和触发它的一行代码(大部分时间在Rails核心中的某个地方)。有没有办法在控制台中启用这些堆栈转储? 最佳答案 我自己找到了解决方案。显然,我需要pry附带的命令wtf?。[7]project»p.known_attributesNoMethodError:undefinedmethod`foo'for#from/[...]/gems/active

c - Ruby C 扩展开发人员的命名约定

在用C为ruby​​编写扩展时,我对遵循正确的命名约定很感兴趣。具体来说,我指的是将_p添加到谓词的函数名称以及为变量添加前缀m代表模块,c代表类等等。例如,如果我们想在C语言中定义一个像下面这样的谓词方法,我们应该在定义该方法的函数中使用_p作为后缀。classMyClassdefawesome?trueendend在C中:staticVALUEmy_extension_my_class_awesome_p(VALUEself){returnQtrue;}voidInit_my_extension(void){VALUEcMyClass=rb_define_class("MyClas

ruby - rake 中止!堆栈级别太深

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rails3.0&Ruby1.9.2rc:Rakecommandsreturn'alreadyinitializedconstant'&stackleveltoodeeperrors.Anyideas我在WindowsVista上使用Ruby1.9.1版。对于正在使用的任何rake命令,我都会收到rakeaborted错误。这不会发生在我所有的应用程序文件夹中。它仅发生在特定的应用程序文件夹中。C:\rails_project\stunetwork>rakedb:reset(inC:/rails_projec

ruby-on-rails - 使用载波版本时堆栈级别太深

我正在尝试使用sidekiqworker,或多或少将图像文件保存到数据库(使用载波)。要保存的文件很少,它们是从视频文件中提取的关键帧。这就是那个worker的意思。我的图片uploader定义了几个版本,如下所示:classKeyframeUploader问题是,当我尝试运行我的SidekiqWorker时,它会抛出Celluloid::FiberStackError:stackleveltoodeep并且解决这个问题的唯一方法是删除我的版本定义。只有在没有为上传者分配任何版本时它才有效。我曾尝试将保存过程移至另一个工作人员或使用Carrierwave::Backgrounder,但

ruby - Bundle 安装在 ruby​​ 2.0 升级时损坏

刚刚升级到ruby​​2.0/rails4.0并尝试在新的rails项目上运行bundleinstall。每当它遇到尚未安装的东西时,它就会吐出:Installingcoffee-rails(4.0.0.beta1)Errno::ENOENT:Nosuchfileordirectory-/usr/lib/ruby/gems/2.0.0/build_info/coffee-rails-4.0.0.beta1.infoAnerroroccurredwhileinstallingcoffee-rails(4.0.0.beta1),andBundlercannotcontinue.Makesu

ruby:instance_eval 一个文件,同时在堆栈跟踪中维护文件:行?

如果我这样做defeval_file(file)instance_evalread(file)end然后,一旦文件内的方法/block之一发生某些事情,我所看到的就是“eval_file”中的(eval):20。当我对许多文件使用eval_file时,很难判断异常来自哪个文件(异常发生在eval之后,使用方法时)有什么方法可以让我看到实际的文件和行号吗? 最佳答案 从thedocumentation可以看出,BasicObject#instance_eval(实际上还有所有其他*_eval)将简单地报告您告诉它的任何文件名和行号:M

c - 奇怪的 "half to even"不同语言的舍入

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。GNUbash,版本4.2.24:$>printf"%.0f,%.0f\n"48.549.548,50ruby1.8.7>printf("%.0f,%.0f\n",48.5,49.5)48,50Perl5.12.4$>perl-e'printf("%.0f,%.0f\n",48.5,49.5)'48,50海湾合作委员会4.5.3:>printf("%.0